﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;

namespace nwrole.lib {
    [ServiceContract]
    public interface IServiceContract {
        [OperationContract]
        Guid GetIdentifier();

        [OperationContract]
        Result Start();

        [OperationContract]
        Result Stop();

        [OperationContract]
        Result StartPlugin(Guid pluginId);

        [OperationContract]
        Result StopPlugin(Guid pluginId);

        [OperationContract]
        Result RestartPlugin(Guid pluginId);

        [OperationContract]
        PluginData[] GetPluginDatas();

        [OperationContract]
        PluginState? GetPluginState(Guid pluginId);

        //[OperationContract]
        //ServiceState GetServiceStatus();
    }
}
